\documentclass{beamer}
\usefonttheme{professionalfonts}% font de LaTeX
\usetheme{Warsaw}
% Tema escogido en este ejemplo
%\setBeamercovered{transparent}
%%%% packages y comandos personales %%%%
%\usepackage[latin1]{inputenc}
\usepackage[activeacute,spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{latexsym} % S ́mbolos

\usepackage{amsmath}
\usepackage{amssymb}

%\usepackage{tipa}
%\usepackage{vowel}
%\usepackage{movie15}
\usepackage{multimedia}
\usepackage{graphicx}
\usepackage{hyperref}
%\newtheorem{Teorema}{Teorema}
%\newtheorem{Ejemplo}{Ejemplo}
%\newtheorem{Definicion}{Definici ́n}
%\newtheorem{Corolario}{Corolario}
%\newtheorem{Prueba}{Prueba}
\begin{document}
\title{Comportamiento Grupal e Información Sensorial\\}
%\subtitle{Parte I}
\author[Castro R. C., Carbajal J. P., Blaco J.] % (optional, for multiple authors)
{\textbf{Alumno:}\\
Ramiro D. Castro\inst{1} \\
\textbf{Directores:}\\
\and Juan P. Carbajal\inst{2} \and Javier O. Blanco\inst{1}}
\institute[UNC und Universidad de Zuric] % (optional)
{
  \inst{1}%
  Facultad de Matemática, Astronomía y Física\\
  Universidad Nacional de Córdoba
  \and
  \inst{2}%
  Departamento de Informática\\
  Universidad de Zurich

}
\vspace*{0.2cm}
\date{21 de Diciembre 2011}
\begin{frame}
\titlepage
\end{frame}
%\frame{\titlepage}

%%\sdf--seLLL--ction{Industria del Videojuego}
%%%\subsection{Crecimiento}
\begin{frame}{Not Just Entertainment}
Crecimiento y expansión de la industria de los videojuegos.
\begin{itemize}
%\pause
\item Ya no son solo una forma de entretener niños y jóvenes.
%\pause
\item La idustria y la tecnología avanzó poderosamente las últimas décadas.
%\pause
\item Los avances en videojuegos llegan tanto a jugadores como no-jugadores.
%\pause
\item Van desde el entretenimiento hasta la educación, salud, negocios, entrenamiento...
\end{itemize}
\end{frame}


\begin{frame}{AI en videojuegos}
Aportes de AI a los videojuegos
%\pause
\begin{itemize}
\item Mejorar inmersión y la jugabilidad
%\pause
\item Aumentar la expresividad de los entornos
%\pause
\item Agentes autónomos más realistas, libres y con un comportamiento definible.
\item Posibilidad de aprendizaje y mejora en el tiempo.
%\pause
\item Historia dinámicas
\end{itemize}
\end{frame}

%%\sdf--seLLL--ction{Swarm Intelligence}
\begin{frame}{Información}
Definición:
\begin{itemize}
\item Swarm Intelligenge es la propiedad de un sistema multi-agentes de hacer emerger una funcionalidad o patrón global de complejidad superior a la del grupo, donde los agentes interactuan localmente entre sí y con el entorno.
\end{itemize}
\end{frame}


\begin{frame}{En la naturaleza}
VIDEO Flocking.
\end{frame}


%%\sdf--seLLL--ction{Propuesta}
\begin{frame}{Propuesta}
¿Qué proponemos?
%\pause
\begin{itemize}
\item Usar técnicas de Swarm Intelligence para agentes autónomos.
\begin{itemize}
\item Modelos discretos, con interacción basada en reglas.
\item Modelos continuos, con interacción basada en potenciales.
\end{itemize}
\item Modelar entornos dinámicos usando CA.
\item Incluir y estudiar el uso de sensores en los agentes.
\begin{itemize}
\item Aplicarlo a los algoritmos antes vistos.
\end{itemize}
\item Acoplar agentes autónomos a entornos dinámicos con CA.
\end{itemize}
\end{frame}

\begin{frame}{Propiedades}
Robustez:
\begin{itemize}
\item Capacidad de tolerar o sobreponerse eventos no previstos.
%\item Implicada por el diseño.
\item Requerido en sistemas complejos (como videojuegos)
\end{itemize}
Flexibilidad:
\begin{itemize}
\item Capacidad de actuar de diferentes maneras frente a un evento.
\item Da libertad a los agentes de videojuegos.
%\item No hay necesidad de especificar cada acción.
\item Aparece la noción de \textbf{emergencia}.
\end{itemize}
Escalabilidad:
\begin{itemize}
\item Capacidad de conservar su performance sin verse comprotido por el aumento de agentes e interacciones.
\item Es una consecuencia de la \textbf{localía} y \textbf{descentralización}.
\end{itemize}
\end{frame}

%%\sdf--seLLL--ction{Algoritmos de Rebaño}
\begin{frame}{Definiciones}
Algoritmos de Rebaño:
\begin{itemize}
\item Es el motor de un sistema distribuido multi-agente.\\

\end{itemize}
Flock:
\begin{itemize}
\item Movimiento coherente de un grupo de partículas auto-propulsadas que emerge de un conjunto de interacciones entre las mismas.
\end{itemize}
\end{frame}


%%\sdf--seLLL--ction{Modelos Discretos}
\begin{frame}{Modelos Discretos}
Modelos Discretos:
\begin{itemize}
\item Buscan lograr la coordinación y organización de agentes.
\item Fueron introducidos por Craig Reynolds en 1987.
\item Usan interacciones basadas en reglas genéricas del tipo \textit{si acción entonces reacción}.
\end{itemize}
\end{frame}

%%%\subsection{Reglas}
\begin{frame}{Reglas}
Separación:
\begin{itemize}
\item Los agentes mantendrán una distancia mínima a sus vecinos.
\item Evitan colisiones.
\end{itemize}
Alineación:
\begin{itemize}
\item Los agentes se moverán en la misma dirección que sus vecinos.
\end{itemize}
Cohesión:
\begin{itemize}
\item Los agentes se moverán hacia el centro de masa de sus vecinos.
\item Se forman grupos.
\end{itemize}
\end{frame}

\begin{frame}{Sobre las reglas}
\begin{itemize}
\item Se usa la \textit{\textbf{separación estática}}, basada en posiciones relativas de los agentes e ignora la velocidad de los mismos.
\item \textit{\textbf{Alineación}} se basa en la dirección de los vectores velocidad de los agentes, ignorando distancias.
\item \textit{\textbf{Alineación}} es una forma predictiva de evitar colisiones.
\item \textit{\textbf{Alineación}} y \textit{\textbf{Separación}} son complementarias.
\item \textit{\textbf{Cohesión}} une a los agentes.
\item \textit{\textbf{Cohesión}} da el sentido de localía y vecindad al sistema.
\end{itemize}
\end{frame}

\begin{frame}{Vecinos}
\begin{center}
\includegraphics[scale=0.5]{img/vecinos.jpg} 
\end{center}
Vecinos de $i_0 = \lbrace i_1, ..., i_6\rbrace$. Vecinos de $i_6 = \lbrace i_0, i_1, i_4, i_5\rbrace$.
\end{frame}

%%%\subsection{Experimentos}
\begin{frame}[fragile]{Simulación NetLogo}
Proceso principal de simulación.
\scriptsize{\begin{verbatim}
to flock  
  find-flockmates	
  if any? flockmates
    [ find-nearest-neighbor	
      ifelse distance nearest-neighbor < minimum-separation
        [ separate ]	
        [ align		
          cohere ] ]
end
\end{verbatim}}
\end{frame}

\begin{frame}{Simulación NetLogo}
VIDEO simulación NetLogo
\end{frame}

%%\sdf--seLLL--ction{Modelos Continuos}
\begin{frame}{Modelos Continuos}
\begin{itemize}
\item Se usan potenciales para definir la interacción entre agentes.
\item Se espera poder predecir patrones.
\item Se basan en el vector distancia cualesquiera agentes $i,j$.
\end{itemize}
\end{frame}

%%%\subsection{Potenciales}
\begin{frame}{Modelos Continuos}
\begin{itemize}
\item Se usaron potenciales de interacción de a pares (\textbf{pairwise-potentials}).
\item Potencial de \textbf{Lennard-Jones}:
\begin{equation*}
U^{L-J}_i(r) = \sum_{i\neq j} \epsilon \Biggl [\biggl ( \frac{r_{min}}{r_{ij}} \biggr)^{12} - \biggl ( \frac{r_{min}}{r_{ij}} \biggr)^6 \Biggr]
\end{equation*}
\item Potencial de \textbf{Morse}:
\begin{equation*}
U^M(\vec{x_i}) = \sum_{i\neq j} \biggl [C_{r}  e^{ \frac{ -|\vec{x_{i}} - \vec{x_{j}}|}{l_{r}}} - C_{a}  e^{ \frac{ -|\vec{x_{i}} - \vec{x_{j}}|}{l_{a}} } \biggr]                                                                                                                                               
\end{equation*}
\end{itemize}
\end{frame}


\begin{frame}{Hard-Core vs Soft-Core}
\begin{itemize}
\item Ambos tienen una componente de \textbf{atracción} y \textbf{repulsión}.
\item \textbf{Lennard-Jones} es de tipo \textbf{Hard-Core}
\begin{equation*}
r_{i,j} \to 0 \Longrightarrow U^{L-J}( \vec{x_i} ) \to \infty
\end{equation*}
\item \textbf{Morse} es de tipo \textbf{Soft-Core}
\begin{equation*}
r_{i,j} \to 0 \Longrightarrow U^M( \vec{x_i} ) \to Cte.
\end{equation*}
\end{itemize}
\begin{center}
\includegraphics[scale=0.4]{./img/soft-core-vs-hard-core2new.png} \\
\end{center}
\end{frame}

\begin{frame}{Ecuaciones de movimiento}
\begin{itemize}
\item El movimiento de los agentes se basa en fuerzas
\begin{equation*}
\label{fuerza}
m \frac{ \delta \vec{v_{i}} }{\delta t} = (\alpha - \beta |\vec{v_{i}}|^{2} ) \vec{v_{i}} - \vec{\nabla}_{i} (\vec{x_{i}}) 
\end{equation*}
%\item Cuando $\alpha, \beta = 0$ la fuerza es independiente de la velocidad y la ecuación describe un \textit{sistema Hamiltoneano} con conservación de energía.
%\item El sistema se dice \textit{H-Estable} si existe una constante $B \geq 0$ tal que $U \geq -NB$. De lo contrario es catastrófico.
\item Se identifican regiones.
\item Hay regiones estables y catastróficas.
%\item Las partículas no colapsan cuando $N\rightarrow \infty$.
\end{itemize}
\end{frame}

\begin{frame}{Regiones Morse}
Patrones
\begin{center}
\includegraphics[height=5cm]{img/regiones-morse.png}
\end{center}
\end{frame}

\begin{frame}{Regiones VII}
\begin{itemize}
\item En esta región $ \lbrace l < 1/ \surd C < 1 \rbrace$
\item Es una región \textbf{catastrófica}.
\item Cuando $N \rightarrow \infty $ el sistema \textbf{converge}.
\item Para valores intermedios de $\alpha / \beta$ las partículas se mueven formando una \textbf{dona}.
\item Para valores finitos de N, se pueden mover en sentido horario y anti-horario (coexistiendo ambos).
\end{itemize}
\end{frame}

\begin{frame}{Video}
VIDEO simulación vpython
\end{frame}

\begin{frame}{Experimentos}
\begin{columns}
\begin{column}{6cm}
\begin{itemize}
\item<1-> Región I de Morse. \small{Parámetros: $N = 150; C < 1$ y $l<1$ con $\alpha > \beta $.}
\item<3-> Región II. \small{Parámetros: $N = 40; l=C$ con $\alpha < \beta$}.
\item<5-> Región VII. Parámetros: $N = 100$ $ \lbrace l < 1/ \surd C < 1 \rbrace$ con $\alpha > \beta$.
\end{itemize}
\vspace{2cm} 
\end{column}
\begin{column}{5cm}
\begin{overprint}
\includegraphics[scale=0.25]<2>{img/R_I2009_10_1_17_23_36.png}
\includegraphics[scale=0.25]<4>{img/R_II2009_10_5_15_59_58.png}
\includegraphics[scale=0.25]<6>{img/R_VII2009_10_6_15_24_42.png}
\end{overprint}
\end{column}
\end{columns}
\end{frame}


%%%\sdf--seLLL--ction{Sensores}
\begin{frame}{Sensores}
\begin{center}
\includegraphics[scale=0.27]{img/AgentStructure.jpg}
\end{center}
\begin{itemize}
\item Sensores de visibilidad geométrica.
\item Sensores de propagación en el medio.
\end{itemize}
\end{frame}

%%%\subsection{Visibilidad Geométrica}
\begin{frame}{Sensores de visibilidad geométrica}
\begin{itemize}
\item Función de actuación del agente:
\begin{equation*}
[a_i, is_i] = \chi(x_1, x_2,..., x_{i-1},..., x_N) 
\end{equation*}
donde $\chi$ se aplica sobre los agentes $x_i$ $\forall i \in \{1, ..., N\}$
\item Sensor de visión, llamémoslo $\psi $, tal que:
\begin{equation*}
\psi(i)=\{\ j \in \{1, ..., N\}:\ agente\ j\ en\ rango\ de\ vision\ de\ i\}
\end{equation*}
\item Aplicamos la función de acctuación acotada por la visión:
\begin{equation*}
[a_i, is_i] = \chi \odot \psi(i)
\end{equation*}
\begin{center}
\includegraphics[scale=0.25]{img/area_vision.jpg}
\end{center}
%\item Se usó la librería visiLibity
%\begin{center}
%\includegraphics[scale=0.2]{img/visilibity-test.png}
%\end{center}
\end{itemize}
\end{frame}

\begin{frame}{Simulaciones con visión y sin visión}
Patrones de simulaciones de la \textit{región VII}. \small{Parámetros para ambos: $C_a < C_r; l_a > l_r; \alpha >\beta = 0.5$ y N=100.}

Snapshots:
\begin{center}
\includegraphics[scale=0.2]{img/R_VII2009_11_4_21_35_32_snapshot_con_vision_n100.png}
\includegraphics[scale=0.2]{img/R_VII2009_11_7_17_20_55_snapshot_sin_vision_n100.png}
\end{center}
\end{frame}


%\begin{frame}{Simulaciones con y sin visión}
%\begin{itemize}
%\item \small{Distancias entre histogramas}
%\begin{center}
%\includegraphics[scale=0.11]{img/R_VII2009_11_11_16_52_39_log_Dist_vs_Time_con_vision_n150.png}
%\includegraphics[scale=0.11]{img/R_VII2009_11_12_16_18_58_log_Dist_vs_Time_sin_vision_n150.png}
%\end{center}
%\item \small{Energía Cinética}
%\begin{center}
%\includegraphics[scale=0.11]{img/R_VII2009_11_11_16_52_39_log_k_vs_time_con_vision_n150.png}
%\includegraphics[scale=0.11]{img/R_VII2009_11_12_16_18_58_log_k_vs_time_sin_vision_n150.png}
%\end{itemize}
%\end{frame}

%\begin{frame}{Simulaciones con y sin visión}
%\begin{itemize}
%\end{center}
%\item \small{Radio medio}
%\begin{center}
%\includegraphics[scale=0.11]{img/R_VII2009_11_11_16_52_39_log_r_vs_time_con_vision_n150.png}
%\includegraphics[scale=0.11]{img/R_VII2009_11_12_16_18_58_log_r_vs_time_sin_vision_n150.png}
%\end{center}
%\end{itemize}
%\end{frame}


%%%\subsection{Propagación en el medio}
\begin{frame}{Sensores de propagación en el medio}
\begin{itemize}
\item Se usa un CA para simular el medio.
\item Cada celda representa una porción discreta del entorno.
\item Se definen una función $\xi$ de cambio de estado del CA en base a reglas.
\end{itemize}
\begin{equation*}
\begin{split}
\begin{aligned}
\varepsilon_0 &= Estado\ inicial; \\\
\varepsilon_1 &= \xi(\varepsilon_0);\\
&...\\
\varepsilon_{n+1} &= \xi(\varepsilon_n)
\end{aligned}
\end{split}
\end{equation*}
\end{frame}

\begin{frame}[fragile]{Vecindades y reglas}
\begin{itemize}
\item Vecindad de \textit{Von Neumann} 
\begin{equation*}
\Theta(\varphi_{i,j}) = \lbrace \varphi_{i-1,j}, \varphi_{i+1,j}, \varphi_{i,j-1}, \varphi_{i,j+1} \rbrace
\end{equation*}
\item Las celdas tendrán propiedades que digan si son inhertes o no, su grado de permeabilidad, cantidad de presión.
\item Algoritmo de flujo de presión en el CA.
\scriptsize{\begin{verbatim}
for (neigh = each neighbor celll)
{
    if ( neigh->Material->IsInert() ) continue;
    float DPress = cell->Pressure - neigh->Pressure;
    float Flow = cell->Material->Flow * DPress;
    Flow = clamp ( Flow, cell->Pressure / 4.0f, -neigh->Pressure / 4.0f );
    cell->NewPressure -= Flow;
    neigh->NewPressure += Flow;
	
}
\end{verbatim}}
\end{itemize}
\end{frame}

%%%\subsection{Simulaciones}
\begin{frame}{Simulación}
VIDEO de explosiones
\end{frame}

%%%\sdf--seLLL--ction{Acoplamiento de Agentes y Entorno Dinámico}
\begin{frame}{Acoplamiento de Agentes y Entorno Dinámico}
\begin{itemize}
\item Los agentes viven en un espacio \textbf{continuo}.
\item El entorno dinámico está caracterizado por un espacio \textbf{discreto}.
\end{itemize}
\begin{center}
\includegraphics[scale=0.9]{img/CA.jpg}
\end{center}
\end{frame}

\begin{frame}{Representación de objetos}
\begin{itemize}
\item Las celdas que representan a un objeto se seleccionan usando su \textbf{bounding box}.
\item El \textbf{bounding box} es la caja de menor área que encierra al objeto.
\end{itemize}
\begin{center}
\includegraphics[height=5cm, width=6cm]{img/bounding-box1.png}
\end{center}
\end{frame}


\begin{frame}{Interacción}
Agentes en espacio continuo
\begin{itemize}
\item Se implementó la física de los agentes usando sus posiciones.
\item Se utilizan movimientos basados en fuerzas.
\item La fuerza sobre el agente, causada por ondas de presión en el entorno, se calculan usando diferencias de presión.
\end{itemize}
\begin{center}
\includegraphics[scale=0.3]{img/Castro_Carbajal_Fig3.jpg}
\end{center}
\begin{equation*}
\begin{split}
\begin{aligned}
\label{eq:dP}
p_j &=& \sum_i \vert p_{ij} \vert \quad j=\mathsf{u,d,l,r} \\
\vec{F} &=& \left( p_u - p_d, p_l -p_r \right).
\end{aligned}
\end{split}
\end{equation*}
\end{frame}

\begin{frame}{Simulación Acople de Agentes y Entorno Dinámico}
VIDEO de agentes y explosiones.
\end{frame}

%%%\sdf--seLLL--ction{Preguntas}
\begin{frame}{Conclusiones}
Modelos Continuos
\begin{itemize}
\item Es posible armar patrones y predecirlos.
\item No se pudo reproducir el patrón buscado acotando la función.
\end{itemize}
Modelos Discretos
\begin{itemize}
\item Comportamiento suave.
\item Útil para combinar con otras técnicas y sensores.
\item Simple de desarrollar.
\end{itemize}
Entornos Dinámicos
\begin{itemize}
\item Alta expresividad.
\item Cálculos costosos.
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\end{document}
